package com.cskaoyan.javase.oop2._1extends._6initialization._2question;

/**
 * @description: 为什么写一个类的构造器最好提供默认无参？
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 在继承中，子类的隐式初始化依赖于父类的无参构造器，如果父类没有无参构造，子类的隐式初始化会报错
 * 并且在某些框架中，会依赖于某个类的无参构造去创建对象
 * 综上，建议创建类写构造器时，加上默认无参
 *
 */
public class Demo2 {
}
class Father2{

    int a;

    public Father2(int a) {
        this.a = a;
    }

}

//在创建子类对象时，父类的构造器一定要先于子类执行，不执行不行
class Son2 extends Father2{
    //There is no default constructor available in 'com.cskaoyan.javase.oop2._1extends._6initialization._2question.Father2'
    public Son2() {
        //super();
        super(10);
    }
}